In an effort to improve performance by increasing computational power, many computing systems are turning to multiple-processor systems. A multiple-processor system typically includes a plurality of processors, a plurality of associated caches, and a main memory. Following a power-up or reset of the multiple-processor system, one of the plurality of processors is selected as a boot strap processor (BSP) and the remaining processors are designated as auxiliary processors (AP). The BSP is configured to execute the boot strap code of the basis input/output system (BIOS) to configure the advanced programmable interrupt controller (APIC) environment, to set up system-wide data structures, and to start and initialize the APs. The APs perform time consuming tasks to free up the BSP, which, in turn, results in faster execution time for the overall system.
During boot time of the multiple-processor system, the BSP dispatches a request to an AP to perform an initialization task such as testing a memory, initializing hardware, and/or other tasks to boot the multiple-processor system. The BSP waits for a status reply from the AP to indicate that the AP has completed the initialization task. However, the AP may hang (i.e., fail to complete the initialization task) for a number of reasons. For example, the AP may crash or get stuck in an infinite loop during execution of an initialization task, such as testing the memory of the multiple-processor system. Accordingly, the BSP may not receive a reply from the AP. As a result, the entire multiple-processor system hangs because the BSP fails to complete the boot process because the BSP is waiting for a reply that the AP will not transmit.